In a communication system, one or more transmitters transmit over a shared medium towards a receiving station. The shared medium could include multiple channels, allowing several transmitters to simultaneously transmit towards the receiving station. At the receiving station, a plurality of receivers is used for receiving the transmissions.
A transmitter could segment a payload to several fragments and transmit each fragment towards the receiving station in a separate transmission. Different fragments of the payload could be transmitted over different channels within the shared medium and received by different receivers at the receiving station. Each fragment includes an identifier of the transmitter to allow the receiving station to distinguish between fragments and payloads of different transmitters.
To protect the integrity of the payload, the transmitter computes a Cyclic Redundancy Check (CRC) code for the payload and attaches the computed code to the first fragment of the payload. After receiving all the fragments of the payload (via the plurality of receivers), the receiving station rebuilds (reassembles) the payload from the fragments and validates the content of the payload by computing the CRC code for the rebuilt payload and comparing it with the CRC code which the transmitter attached to the first fragment.
However, before the receiving station can rebuild the payload from the received fragments, the receiving station needs to determine that all the fragments of the payload were received. Such determining is often based on including a sequence number in each fragment and an additional total fragment count in the first fragment. Unfortunately, the fragment numbering information is overhead which reduces the efficiency of the communication system. Alternatively, the receiving station can determine that the last fragment of the payload was received if a predefined interval has passed from the time of receiving the last fragment without receiving additional fragments for the payload. However, this alternative introduces latency to the communication system in addition to being vulnerable to errors. The receiving station could decide that all fragments were received while in fact one or more additional fragments are delayed (for example due to high load on the shared medium).